package common.properties {
import mx.core.UIComponent;

/**
 * Used for HasProperties object. Describes editor of the property
 */
public interface PropertyEditor {
    /**
     * @return visual editor of the property (TextInput, CheckBox or other)
     */
    function get component():UIComponent;

    /**
     * sets value to editor
     * @param val value to set
     */
    function set value(val:Object):void;

    /**
     * gets value from editor
     * @return read value
     */
    function get value():Object;

    function registerChangeListener(listener:Function):void;
}
}